package com.woniuxy.yoga.course.service.service;

import com.woniuxy.yoga.commons.core.model.PageInfo;
import com.woniuxy.yoga.course.dao.model.AloneReservation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.yoga.course.model.dto.alone.AloneReservationDTO;
import com.woniuxy.yoga.course.model.param.alone.AddAloneReservationParam;
import com.woniuxy.yoga.course.model.param.alone.CoachQueryMyAloneReservationParam;
import com.woniuxy.yoga.course.model.param.alone.UserQueryMyAloneReservationParam;

import java.util.List;

/**
 * <p>
 * 私教预约表 服务类
 * </p>
 *
 * @author 韦用文,刘存益,郎腾霄
 * @since 2023年11月28日
 */
public interface AloneReservationService extends IService<AloneReservation> {

    /**
     * 教练ID查询预约信息
     * @param ids
     * @return
     */
    List<AloneReservationDTO> getReservationByCoachId(List<Integer> ids);

    /**
     * 新增私教预约信息
     * @param param
     */
    void addAloneReservation(AddAloneReservationParam param);

    /**
     * 私教预约次数减一
     * @param reservationId
     */
    void reduceAloneReservationCount(Integer reservationId);

    /**
     * 私教预约确认
     * @param reservationId
     */
    void modifyAloneReservationConfirm(Integer reservationId);

    /**
     * 私教预约拒绝
     * @param reservationId
     */
    void modifyAloneReservationRefuse(Integer reservationId);

    /**
     * 教练查询自己的私教预约信息
     * @param param
     * @return
     */
    PageInfo coachQueryMyAloneReservation(CoachQueryMyAloneReservationParam param);

    /**
     * 用户查询自己的私教预约信息
     * @param param
     * @return
     */
    PageInfo userQueryMyAloneReservation(UserQueryMyAloneReservationParam param);
}
